Deleni ve FB

Otázka od: Ales Pavel

19. 11. 2002 13:19



ahoj mam promennou v triggeru se kterou pocitam nejak takhle x=y/4 jenze
znamenko "/" asi neni vhodne pro deleni protoze mi to zaokrouhluje na cela
cisla,jak to udelam abych zachoval i desetinna cisla, nemelo by to byt tim
ze je to typ decimal nebo jo?



Hezky den

Ales Pavel
TalpaSoft - software pro kazdeho
tel:0777/992792
web: http://Talpa.chytrak.cz
e-casopis: http://rozarkaweb.aktualne.cz

Odpovedá: Roman

19. 11. 2002 14:19

> ahoj mam promennou v triggeru se kterou pocitam nejak takhle x=y/4 jenze
> znamenko "/" asi neni vhodne pro deleni protoze mi to zaokrouhluje na cela
> cisla,jak to udelam abych zachoval i desetinna cisla, nemelo by to byt tim
> ze je to typ decimal nebo jo?

Zkus neco jako x=cast(y as float)/4

Roman
==============================
http://kouzelne.misto.cz

Odpovedá: Radek KALA

19. 11. 2002 15:53

Ted se to resilo v jinem threadu, napis napr 4.0 ( podobne jako v C

> ahoj mam promennou v triggeru se kterou pocitam nejak takhle x=y/4
> jenze znamenko "/" asi neni vhodne pro deleni protoze mi to
> zaokrouhluje na cela cisla,jak to udelam abych zachoval i desetinna
> cisla, nemelo by to byt tim ze je to typ decimal nebo jo?
>
>
>
> Hezky den
>
> Ales Pavel
> TalpaSoft - software pro kazdeho
> tel:0777/992792
> web: http://Talpa.chytrak.cz
> e-casopis: http://rozarkaweb.aktualne.cz
>


                     S pozdravem Radek KALA
                     BetaControl, s.r.o.
                     Cerneho 58/60, 635 00
                     tlf. : + 420 5 4622 3491
                     fax : + 420 5 4622 3470
                     GSM : + 420 603 85 75 15

Odpovedá: Pavel Cisar

19. 11. 2002 17:05

Haj hou!

On 19 Nov 2002 at 11:15, Ales Pavel wrote:

> ahoj mam promennou v triggeru se kterou pocitam nejak takhle x=y/4 jenze
> znamenko "/" asi neni vhodne pro deleni protoze mi to zaokrouhluje na cela
> cisla,jak to udelam abych zachoval i desetinna cisla, nemelo by to byt tim
> ze je to typ decimal nebo jo?

Porad to tu resime dokola a odpoved uz mnohokrat zaznela. Takze jeste
jednou a naposledy, kdyz je Z = X/Y pak :

- V dialektu 1, pokud je X a Y integer nebo numeric/decimal(9,2) (ci
mensi), je vysledkem double precission

- V dialektu 3, pokud je X a Y presne cislo - smallint, integer,
numeric/decimal(n,m) - je vysledkem presne cislo s presnosti rovnou
souctu presnosti obou cisel, delence i delitele.

Priklady:

Deleni DECIMAL(9,2) a DECIMAL(12,3) = DECIMAL(18,5)

Cela cisla 1 a 3...
V dialektu 1 je 1/3 = 0.33333333333333e0 (double precission)
V dialektu 3 je 1/3 = 0, protoze nemaji zadnou presnost (desetina mista)
V dialektu 3 je 23/100.0 = 0.2 (100.0 je jako decimal(4,1) )
V dialektu 3 je 23/100.00 = 0.23 (100.00 je jako decimal (5,2) )

Doufam, ze uz je to jasne.

S pozdravem
Pavel Cisar
Mobil: 724 281429
http://www.ibphoenix.cz
Vse co potrebujete pro Firebird a InterBase